L1-009 N个数求和
题目 L1-009 N个数求和
思路分析
代码实现
#include<bits/stdc++.h>
using namespace std;
#define endl '\n'
typedef long long LL;
void work(LL NewFZ,LL NewFM,LL *SumFZ,LL *SumFM){
*SumFZ=*SumFZ * NewFM+ *SumFM * NewFZ;
*SumFM=*SumFM*NewFM;
LL gys=__gcd(*SumFM,*SumFZ);
*SumFM/=gys;
*SumFZ/=gys;
}
int main(){
ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
int N;scanf("%d", &N);
LL SumFZ=0;
LL SumFM=1;
for(int i=0;i<N;i++){
LL NewFM,NewFZ;
scanf("%lld/%lld",&NewFZ,&NewFM);
work(NewFZ,NewFM,&SumFZ,&SumFM);
}
if(SumFZ%SumFM==0){
printf("%lld\n",SumFZ/SumFM);
}else if(abs(SumFZ) > SumFM){
printf("%lld %lld/%lld\n", SumFZ / SumFM, abs(SumFZ) % SumFM, SumFM);
}else{
printf("%lld/%lld\n",SumFZ,SumFM);
}
return 0;
}
同类题型
视频讲解
⬅️ L1-008 求整数段和 🏠 00-天梯赛 ➡️ L1-010 比较大小
💬 评论